package com.huahua.api.service;

import com.huahua.api.entity.param.TtsCompleteParam;
import com.huahua.api.entity.param.TtsCreateParam;
import com.huahua.api.entity.vo.TtsRecordVo;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

/**
 * @author Huahua-Ai
 * @date 2025-01-10 14:55:00
 * @description TTS服务接口
 */
public interface TtsService {

    /**
     * 创建TTS任务
     */
    Mono<TtsRecordVo> createTask(TtsCreateParam param);

    /**
     * 获取TTS任务状态
     */
    Mono<TtsRecordVo> getTaskStatus(Long id);

    /**
     * 任务完成回调
     */
    Mono<TtsRecordVo> completeTask(TtsCompleteParam param);

    /**
     * 获取待开始的记录列表
     */
    Flux<TtsRecordVo> getPendingTasks();

    /**
     * 标记任务为处理中（已废弃，请使用startTask）
     */
    @Deprecated
    Mono<TtsRecordVo> markAsProcessing(Long id);

    /**
     * 开始执行任务
     */
    Mono<TtsRecordVo> startTask(Long id);
}
